//
//  RetweetedStatusCell.swift
//  WeiBlog
//
//  Created by apple on 15/10/22.
//  Copyright © 2015年 xiang. All rights reserved.
//

import UIKit

class RetweetedStatusCell: StatusCell {
    
    override var viewModel:StatusViewModel?{
        didSet{
            //设置转发文字
            retweetedTextLabel.text = viewModel?.retweetedText
            
            //判断picturesView.bounds.height是否为0,然后更新顶部的布局(每次都要判断是因为有重用)
            let offset = viewModel?.imageURLs.count == 0 ? 0 : margin
            
            picturesView.snp_updateConstraints{ (make) -> Void in
                make.top.equalTo(retweetedTextLabel.snp_bottom).offset(offset)
            }
            
            //下面这两句主要是为了再返回高度时,强制更新布局先计算出一个高度
            contentView.layoutIfNeeded()
            rowHeight = CGRectGetMaxY(bottomView.frame)
        }
    }
    override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
        
        super.init(style: .Default, reuseIdentifier: RetweetedCellID)
        
        /**
            注意千万不要调用这个方法,因为上面这句init就会执行本类的setUI方法,因为
        父类StatusCell的init方法里面调用了setUI方法,本类中也重写了setUI,所以在调用方法时,会先看自己有没有实现这个方法,如果有
        那么就会调用本类的方法(注意这个调用逻辑)
        */
        //  setUI()  如果调用了这个方法,那么init里面会调用一次,然后这句又会调用一次,那么布局就会覆盖,发生错误
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
// MARK:-------懒加载
    /// 背景控件(按钮)
    private lazy var bgButton:UIButton = {
            let btn = UIButton()
            btn.backgroundColor = UIColor(white: 0.95, alpha: 1.0)
            btn.addTarget(self, action: "click", forControlEvents: UIControlEvents.TouchUpInside)
            return btn
        }()
    private lazy var retweetedTextLabel:UILabel = UILabel(text: "只设置和父类不同的地方只设置和父类不同的地方只设置和父类不同的地方只设置和父类不同的地方只设置和父类不同的地方",fontSize:13,screenSet:margin)
    
    
    // MARK:-------点击
    @objc private func click(){
        print("点击按钮了")
    }
    
}


//设置界面(只设置和父类不同的地方)
extension RetweetedStatusCell
{
    
    override func setUI() {
        super.setUI()//这里一定要写
        
        //添加
        contentView.insertSubview(bgButton, belowSubview: picturesView)
        contentView.insertSubview(retweetedTextLabel, aboveSubview: bgButton)
        
        //自动布局
        
        bgButton.snp_makeConstraints { (make) -> Void in
            make.top.equalTo(contentLabel.snp_bottom).offset(margin)
            make.left.equalTo(contentView.snp_left)
            make.right.equalTo(contentView.snp_right)
            make.bottom.equalTo(bottomView.snp_top)
        }
        retweetedTextLabel.snp_makeConstraints { (make) -> Void in
            make.top.equalTo(contentLabel.snp_bottom).offset(margin)
            make.left.equalTo(contentView.snp_left).offset(margin)
        }
        picturesView.snp_makeConstraints { (make) -> Void in
            make.top.equalTo(retweetedTextLabel.snp_bottom).offset(margin)
            make.width.equalTo(ScreenWidth - 2 * margin)
            make.left.equalTo(contentLabel.snp_left)
            make.height.equalTo(320)
        }
    }
}